<?php
/*--------------------------
	file:	folder.lib
	intro:	文件夹处理底层库函数
--------------------------*/
/*
	function:			清理文件夹
	@param: $dirname	文件夹
	@param:	$keepdir	保留文件夹结构
	return: bool
*/
function removedir($dirname, $keepdir = FALSE) {
	//$dirname = wipespecial($dirname);
	if(!is_dir($dirname)) {
		return FALSE;
	}
	$handle = opendir($dirname);
	while(($file = readdir($handle)) !== FALSE) {
		if($file != '.' && $file != '..') {
			$dir = $dirname . DIRECTORY_SEPARATOR . $file;
			is_dir($dir) ? removedir($dir) : unlink($dir);
		}
	}
	closedir($handle);
	return !$keepdir ? (@rmdir($dirname) ? TRUE : FALSE) : TRUE;
}

/*
	function:			文件夹结构
	@param: $floder	文件夹
	#param:	$ext	过滤扩展名
	return: array
*/
function listdir($floder, $ext=''){	
	if($handle = opendir($floder)){
		while(false !== ($file = readdir($handle))){
			//if(preg_match( "/[.]jpg$/", $file)){
			if($ext!=''){
				if($ext == substr($file,-(strlen($ext)))){
					$newArr[] = $file;
				}
			}elseif($file!='.' && $file!='..'){
				$newArr[] = $file;
			}
			//}
		}
		closedir($handle);
		return $newArr;
	}
	return false;
}

/*
	function:		检查文件夹是否可写
	@param: $dir	文件夹路径
	return: bool
*/
function dir_writeable($dir) {
	if(!is_dir($dir)) {
		@mkdir($dir, 0777);
	}
	if(is_dir($dir)) {
		if($fp = @fopen("$dir/test.txt", 'w')) {
			@fclose($fp);
			@unlink("$dir/test.txt");
			$writeable = 1;
		} else {
			$writeable = 0;
		}
	}
	return $writeable;
}
?>